Soru & Cevap

Firebase Database kullanıcı kontrolu

02.01.2019 - 02:20

Merhaba android studioda uygulama yazıyorum.Uygulamada iki farkli kullanıcı login ekranı var.Bunları Firebase kullanıcılar ve firebase database kaydedebiliyorum.Fakat her iki farklı kullanıcıdan biri giriş yapacagı zaman  bunları databaseden çekip kontrol etmek istiyorum ama edemiyorum.Birde kullancılar kendi login sayfasında değil hangi loginde girersem gireyim kim oldugu onemli olmadan konrol ettiremeden girşi yapıyor.

daha anlaşılır bir şekilde anlatırsam A VE B login ekranları var.

Ben A login ekranı kullanıcısıym oraya kaydoldum.ama Blogin ekranına gelip oradada giriş yapmaya çalıştığımda B login kullanıcısı olmadığım halde bana onay verip açıyor bunu nasıl düzeltebilirim ve firebase database verileri çekip kontrol edebilirm.

448 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user cagatay347923
cagatay347923
02.01.2019 - 10:42

FirebaseAuthentication özelliği ile bunu sağlayabilirsin eğer gradle kütüphanesine firebaseauth özelliğini eklediysen

Global Olarak şunları tanımla FirebaseAuth firebaseAuth; FirebaseUser user;

LoginActivity kısmında Ctrl+O bas OnStart Metodunu getir  getCurrentUser(); özelliğini kullanmalısın yani şuanki kullanıcıyı almalısın LoginActivity OnStart metoduna girdiğinde o an giriş yapılan kullanıcıyı alacaktır. bunu şu kod ile sağlayabilirsin;

user=firebaseauth.getCurrentUser();

Login Butonuna bastığında ise firebaseAuth signinemailadress methodunu kullanmalısın.

String email=//Buraya EditText ile girilen emailden gelen yazıyı almalısın// Örneğin email.getText.ToString();

String password=//Burayada aynı şekilde password'tan gelen yazıyı almalısın//
firebaseAuth.signInWithEmailAndPassword(email,password)

.addOnCompleteListener(task){

if(task.isSuccessful()){

// Eğer işlem başarılıysa Başarıyla Giriş Yapıldı mesajı verip giriş sayfasına aktarabilirsin bunuda startActivity ile sağlarsın//

}

else{

// Böyle bir üyelik bulunmamaktadır veya başka mesajda verebilirisn bu sana kalmış//

}

}); // Bu metodu kendim yazdım o yüzden scope(parantez) eksikliği olabilir AndroidStudio editörü direk tamamlıcaktır zaten.

Kullanıcı girişini yaptı ve birdaha uygulamaya girdiğinde ise yapacağın işlem şudur ;

LoginActivity'ye girdiğinde OnStart Metodunda şuanki kullanıyıcı almıştın şimdi onu burada kullanacaksın

if(firebaseAuth.getCurrentUser()!=null) {

//Kullanıcı Girişi Yapmışsa zaten en son girilen kullanıcıyı algılar ve direk giriş sayfasına yönlendirir bu sayede tekrardan giriş yapmaya gerek kalmaz ve kullanıcıyı sıkmaz fakat kullanıcı uygulama içinde hesabından çıkış yaparsa bu durum false olacaktır ve login ekranına gelip tekrardan giriş yapılması gerekecektir. //Hesaptan çıkış yapma metodumuz firebaseAuth.signout(); metodudur. bu durumda getCurrentUser()=null; olacaktır. yani boş o yüzden yeniden giriş yapman gerekecektir. bu işlemler gerçekleştiğinde zaten sorunun çözülmüş olacak ve kişiye özel sayfaya giriş yapabileceksin bu giriş yapma metoduydu eğer yeni kullanıcı açacaksan onuda firebaseAuth.createUserWithEmailAndPassword Deyip aynı mantıkta yapabilirsin. Kolay Gelsin...